// 版权归Go作者所有。版权所有。
// 此源代码的使用受BSD样式
// 许可证的约束，该许可证可以在许可证文件中找到。

package ssa

type ID int32

// idAlloc为唯一整数提供了一个分配器。
type idAlloc struct {
	last ID
}

// get分配一个ID并返回它。ID始终大于0。
func (a *idAlloc) get() ID {
	x := a.last
	x++
	if x == 1<<31-1 {
		panic("too many ids for this function")
	}
	a.last = x
	return x
}

// num返回曾经返回的最大ID+1。
func (a *idAlloc) num() int {
	return int(a.last + 1)
}
